package {
	
	public class YouTubePlayer implements IYouTubePlayer {
		
		private var _player:Object;
		
		public function YouTubePlayer(player:Object) {
			_player = player;
		}
		
		public function cueVideoById(videoId:String, startSeconds:Number = NaN, suggestedQuality:String = null):void {
			_player.cueVideoById(videoId, startSeconds, suggestedQuality);
		}
		
		public function loadVideoById(videoId:String, startSeconds:Number = NaN, suggestedQuality:String = null):void {
			_player.loadVideoById(videoId, startSeconds, suggestedQuality);
		}
		
		public function cueVideoByUrl(mediaContentUrl:String, startSeconds:Number = NaN):void {
			_player.cueVideoByUrl(mediaContentUrl, startSeconds);
		}
		
		public function loadVideoByUrl(mediaContentUrl:String, startSeconds:Number = NaN):void {
			_player.loadVideoByUrl(mediaContentUrl, startSeconds);
		}
		
		public function playVideo():void {
			_player.playVideo();
		}
		
		public function pauseVideo():void {
			_player.pauseVideo();
		}
		
		public function stopVideo():void {
			_player.stopVideo();
		}
		
		public function seekTo(seconds:Number, allowSeekAhead:Boolean):void {
			_player.seekTo(seconds, allowSeekAhead);
		}
		
		public function mute():void {
			_player.mude();
		}
		
		public function unMute():void {
			_player.unMute();
		}
		
		public function isMuted():Boolean {
			return _player.isMuted();
		}
		
		public function setVolume(volume:Number):void {
			_player.setVolume(volume);
		}
		
		public function getVolume():Number {
			return _player.getVolume();
		}
		
		public function setSize(width:Number, height:Number):void {
			_player.setSize(width, height);
		}
		
		public function getVideoBytesLoaded():Number {
			return _player.getVideoBytesLoaded();
		}
		
		public function getVideoBytesTotal():Number {
			return _player.getVideoBytesTotal();
		}
		
		public function getVideoStartBytes():Number {
			return _player.getVideoStartBytes();
		}
		
		public function getPlayerState():Number {
			return _player.getPlayerState();
		}
		
		public function getCurrentTime():Number {
			return _player.getCurrentTime();
		}
		
		public function getPlaybackQuality():String {
			return _player.getPlaybackQuality();
		}
		
		public function setPlaybackQuality(suggestedQuality:String):void {
			_player.setPlaybackQuality(suggestedQuality);
		}
		
		public function getAvailableQualityLevels():Array {
			return _player.getAvailableQualityLevels();
		}
		
		public function getDuration():Number {
			return _player.getDuration();
		}
		
		public function getVideoUrl():String {
			return _player.getVideoUrl();
		}
		
		public function getVideoEmbedCode():String {
			return _player.getVideoEmbedCode();
		}
		
		public function addEventListener(event:String, listener:Function):void {
			_player.addEventListener(event, listener);
		}
		
		public function destroy():void {
			_player.destroy();
		}
		
	}
}